#include <termios.h>
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/signal.h>
#include <sys/types.h>
#include <string.h>
#include <pthread.h>

int rfcomm;
int canale;

void *bluetooth_listen();

int main(){
	int error=0;
	char buf[4]={0};
	
	int err = system("sudo -v");
	if(err == -1){
		printf("Errore");
		return(0);
	}
	
	printf("\nInserisci il numero della rfcomm: ");
    	scanf("%d",&rfcomm);
    	printf("\nInserisci il numero del canale: ");
    	scanf("%d",&canale);

	//creo il thread che si mette in listen per attivare il bluetooth:
	pthread_t listener;
	pthread_create(&listener,NULL,bluetooth_listen,NULL);

	//pthread_create(&listener,NULL,bluetooth_listen,NULL);
	sleep(10);
	char nomeFile[15];
	sprintf(nomeFile,"/dev/rfcomm%d",rfcomm);
	printf("\nnomeFile: %s\n",nomeFile);
	
	int fd = open(nomeFile, O_RDWR|O_NOCTTY|O_NDELAY| O_APPEND);
	if (fd==-1){
		perror("\nNon ci sono dispositivi che stanno provando a connettersi al sensore \n");
		//return 0;
	}
	else{
		while(1){
			//printf("\nDENTRO IL WHILE");
			fcntl(fd, F_SETFL, 0);
			int num_int = (rand()%100);
			char jj[5];
			sprintf(jj, "%d", num_int); //conversione da int a char
			write(fd, jj, 5);
			printf("Numero : %d\n", num_int);
			sleep(1);

		}//fine while(1)
	}//fine else
	
}

void *bluetooth_listen(){
/*
	char *shell_command = malloc(sizeof("sudo rfcomm -i hci0 listen ")+sizeof(rfcomm)+ sizeof(" ") + sizeof(canale));
	sprintf(shell_command, "sudo rfcomm -i hci0 listen %d %d",rfcomm, canale);
	int err = system(shell_command);
	if(err == -1){
		printf("Errore");
		return(0);
	}
	//printf("\nERR: %d\n",err);
*/
	pthread_exit(0);
}



